package xyz.itpath.gen.service;

import xyz.itpath.gen.dto.ClassDefine;
import xyz.itpath.gen.dto.Column;
import xyz.itpath.gen.dto.Table;

import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

/**
 * @author zhaom
 * @date 2021/9/22 - 17:38
 */
public interface GeneratorService {

    /**
     * 获取指定数据库中所有的表信息
     */
    List<Table> listAllTable();

    /**
     * 列举出指定表的所有属性
     */
    List<Column> listColumns(String dbName, String tbName);

    /**
     * 获取指定表的信息
     */
    List<Table> getTableInfo(String dbName, List<String> tbName);

    /**
     * 将表转换为类定义信息
     */
    List<ClassDefine> convertTableToClassDefine(String dbName, String tbName, String basePackage);

    /**
     * 生成代码
     */
    void genCode(String dbName, String tbName, String packageName, OutputStream outputStream);

}
